package cmd

import (
	"gitee.com/liumou_site/PasswordReset/config"
	"gitee.com/liumou_site/logger"
	"os"
)

// EnsureConfigDir 确保配置目录存在
func EnsureConfigDir() error {
	if _, err := os.Stat(config.ConfigDir); os.IsNotExist(err) {
		logger.Info("配置目录不存在，正在创建: %s", config.ConfigDir)
		if err := os.MkdirAll(config.ConfigDir, 0700); err != nil {
			return err
		}
		logger.Info("配置目录创建成功")
	}
	return nil
}

// EnsureEncryptionKey 确保加密密钥存在
func EnsureEncryptionKey() error {
	if _, err := os.Stat(config.KeyFile); os.IsNotExist(err) {
		logger.Info("加密密钥不存在，正在生成...")
		key, err := config.GenerateEncryptionKey()
		if err != nil {
			return err
		}
		
		if err := config.SaveEncryptionKey(key); err != nil {
			return err
		}
		logger.Info("加密密钥生成并保存成功")
	}
	return nil
}

// SetupEnvironment 设置运行环境
func SetupEnvironment() error {
	// 确保配置目录存在
	if err := EnsureConfigDir(); err != nil {
		return err
	}
	
	// 确保加密密钥存在
	if err := EnsureEncryptionKey(); err != nil {
		return err
	}
	
	return nil
}